package jwj8508.j2ee.advanced;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class J06ForwardvsRedirect
 */
@WebServlet("/J06ForwardvsRedirect")
public class J06ForwardvsRedirect extends HttpServlet {
	private static final long serialVersionUID = 1L;
   
	protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		
		// JSP 페이지에 넘겨줄 데이터 저장
		req.setAttribute("msg", "안녕하신가, 힘세고 강한 아침!!");
		
		res.setContentType("text/html; charset=UTF-8");
		PrintWriter out = res.getWriter();
		/*out.print("<html>");
		out.print("<head>");
		//out.print("<meta http-equiv='refresh' content='5;url=http://google.com' />");
		out.print("<meta http-equiv='refresh' content='5;url=/JSP_Advanced/J06Forward.jsp?msg=Hello' />");
		out.print("</head>");.
		out.print("<body></body>");
		out.print("</html>");*/

		String dispatcherUrl = "J06Forward.jsp";
		RequestDispatcher rd = req.getRequestDispatcher(dispatcherUrl);
		rd.forward(req, res);                                                                                                  
		
		// forward
		// 웹 서버가 서버내 자원을 요청함
		// 따라서 URL은 변화 없음
		// 하지만, 서버 밖 자원은 요청불가
		// 객체형태로 JSP 페이지에 데이터를 전달 가능
		
		// sendRedirect
		// 클라이언트가 서버내 자원을 요청함
		// URL은 클라이언트가 요청한 자원으로 변경
		// 반면, 서버 밖 자원도 요청 가능
		// 텍스트 형태로만 JSP페이지에 데이터 전달 가능
	}

}
